using System.Collections.Generic;

namespace battlenet.wow.rt.domain.objects
{
    /// <summary>
    /// 
    /// </summary>
    public class Item
    {
        /// <summary>
        /// Gets or sets the slot.
        /// </summary>
        /// <value>
        /// The slot.
        /// </value>
        public SlotType Slot { get; set; }

        /// <summary>
        /// Gets or sets the identifier.
        /// </summary>
        /// <value>
        /// The identifier.
        /// </value>
        public int Id { get; set; }

        /// <summary>
        /// Gets or sets the name.
        /// </summary>
        /// <value>
        /// The name.
        /// </value>
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets the icon.
        /// </summary>
        /// <value>
        /// The icon.
        /// </value>
        public string Icon { get; set; }

        /// <summary>
        /// Gets the icon link.
        /// </summary>
        /// <value>
        /// The icon link.
        /// </value>
        public string IconLink { get { return Icon == null ? null : string.Format(ApplicationConstants.IconHost, Icon); } }

        /// <summary>
        /// Gets or sets the quality.
        /// </summary>
        /// <value>
        /// The quality.
        /// </value>
        public int QualityId { get; set; }

        /// <summary>
        /// Gets the item quality.
        /// </summary>
        /// <value>
        /// The item quality.
        /// </value>
        public ItemQualityType Quality { get { return (ItemQualityType) QualityId; } }

        /// <summary>
        /// Gets or sets the item level.
        /// </summary>
        /// <value>
        /// The item level.
        /// </value>
        public int ItemLevel { get; set; }

        /// <summary>
        /// Gets or sets the tooltip parameters.
        /// </summary>
        /// <value>
        /// The tooltip parameters.
        /// </value>
        public TooltipParams TooltipParams { get; set; }

        /// <summary>
        /// Gets or sets the stats.
        /// </summary>
        /// <value>
        /// The stats.
        /// </value>
        public List<Statistic> Stats { get; set; }

        /// <summary>
        /// Gets or sets the armor.
        /// </summary>
        /// <value>
        /// The armor.
        /// </value>
        public int Armor { get; set; }

        /// <summary>
        /// Gets or sets the context.
        /// </summary>
        /// <value>
        /// The context.
        /// </value>
        public string Context { get; set; }
    }
}